/**
 * describe:
 *
 * @author chaP
 * @date 2019/04/09
 */
package CodingTest.AC20190409;

import java.util.HashMap;

/**leecode -290
 * 给定一种 pattern(模式) 和一个字符串 str ，判断 str 是否遵循相同的模式。

 这里的遵循指完全匹配，例如， pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。

 示例1:

 输入: pattern = "abba", str = "dog cat cat dog"
 输出: true
 示例 2:

 输入:pattern = "abba", str = "dog cat cat fish"
 输出: false
 示例 3:

 输入: pattern = "aaaa", str = "dog cat cat dog"
 输出: false
 示例 4:

 输入: pattern = "abba", str = "dog dog dog dog"
 输出: false
 */
public class wordPattern {
    public boolean wordPattern(String pattern,String str){
        HashMap<Character,String> hs = new HashMap<Character, String>();
        String[] s = str.split(" ");
        if(s.length != pattern.length()){
            return false;
        }
        for(int i=0;i<s.length;i++){
            if(hs.containsKey(pattern.charAt(i))){
                if(!hs.get(pattern.charAt(i)).equals(s[i]))
                    return false;
            }else{
                if(hs.containsValue(s[i])){
                    return false;
                }else{
                    hs.put(pattern.charAt(i),s[i]);
                }
            }
        }
        return true;
    }

}
